package Main;


import exceptions.lexic.*;
import exceptions.sintactic.*;
import exceptions.semantic.*;
import Analizador_Sintactico.AnalizadorSintactico;
import generator.*;
import java.io.*;

import java.io.FileNotFoundException;

public class principal {

    public static void main(String[] args) throws FileNotFoundException {
    	String salida = "";
    	int cantParametros=args.length;
        boolean ok = true;
   
    	//String archivoEntrada=args[0];
    	String archivoEntrada="Prueba1.java";
    	String archivoSalida;
    	String output="CeIASM.txt";
    	CodeGenerator generator = new CodeGenerator(output);
    	if(cantParametros==2)
    		archivoSalida=args[1];
    	else
    		archivoSalida="salida.txt";
    		
        try {
        	  //AnalizadorLexico arch = new AnalizadorLexico(archivoEntrada);
        	  AnalizadorSintactico arch = new AnalizadorSintactico(archivoEntrada,generator);
        	  Boolean finArchivo = false;
        	 
        	  try {
                  arch.parsear();
              } catch (LexicException e) {
                  System.out.println(e.getMessage());
                  ok = false;
              } catch (SintacticException e) {
                  System.out.println(e.getMessage());
                  ok = false;
              } 
        	 
        }  catch (IndexOutOfBoundsException ex){
            System.out.print("Modo de uso:\njava -jar <rutaCompilador>/AnalizSintDecaf.jar \"<archivoFuente>\" [\"<archivoDestino>\"]\n");
            System.exit(0);
        } catch (FileNotFoundException ex) {
            System.out.print("No se ha encontrado el archivo.");
            System.exit(0);
        }catch(java.io.IOException e){
        	System.out.println(e.getMessage());
        	System.exit(0);
        }catch(Exception ex){
	       System.out.println(ex.getMessage());	
	    }

    }
}
    
    
